// ----------------------------------
// RSDK Project: Sonic Pocket Reventure
// Script Description: Team ReDream Logo
// Script Author: Tails LP
// ----------------------------------

// Aliases

private alias object.value0 : timer
private alias object.value1 : fade.timer
private alias object.value2 : trapez.visibility
private alias object.value4 : start.demoCountdown
private alias object.value5 : blackBar.offset

function LetterDrop
	temp2 = screen.xcenter
	temp2 -= 106
	temp2 += blackBar.offset
	temp3 = screen.ycenter
	temp3 -= 15
	temp5 = 212
	temp5 -= blackBar.offset
	DrawRect(temp2, temp3, temp5, 30, 0, 0, 0, 255)
end function

event ObjectMain
	switch object.state
	case 0
		object.scale = 0
		break
	case 1
		switch timer
		case 15
			blackBar.offset += 30
			break
		case 40
			blackBar.offset += 29 
			break
		case 65
			blackBar.offset += 30
			break
		case 100
			blackBar.offset += 30
			break
		case 130
			blackBar.offset += 27
			break
		case 150
			blackBar.offset += 32
			break
		case 170
			blackBar.offset += 40
			break
		endswitch
		if timer >= 180
			object.scale += 0xa0
		endif
	//	if timer == 240
	//		PlaySFX(SFXName[Special Warp], 0)
	//	endif
		if timer <= 220
			timer ++
		else
			timer = 0
			object.state ++
		endif
		break
	case 2
		object.scale += 0xa0
		if fade.timer < 255
			fade.timer += 16
		else
			object.state++
			stage[0].activeLayer = 3
			object.inkEffect = INK_ALPHA
			object.alpha = 0
		end if
		SetScreenFade(255, 255, 255, fade.timer)
		break
	case 3
		if fade.timer > 0
			fade.timer -= 16
		else
			object.state++
			timer = 0
		end if
		SetScreenFade(255, 255, 255, fade.timer)
		break
	case 4
		switch timer
		case 20
			trapez.visibility = 1
			//PlaySFX(SFXName[Bonus Points], 0)
			break
		case 25
			trapez.visibility = 2
			//PlaySFX(SFXName[Bonus Points], 0)
			break
		case 30
			trapez.visibility = 3
			//PlaySFX(SFXName[Bonus Points], 0)
			break
		endswitch

		if timer <= 50
			timer ++
		else
			timer = 0
			object.state ++
			//PlaySFX(SFXName[Event], 0)
		endif
		break
	case 5
		object.alpha +=16
		if timer <= 70
			timer ++
		else
			timer = 0
			object.state ++
		endif
		break
	end switch
end event


event ObjectDraw
	switch object.state
	case 1
		drawRect(0,0, screen.xsize, screen.ysize, 0, 0, 0, 255)
		temp0 = screen.xcenter
		temp0 -= 92
		temp1 = screen.ycenter
		DrawSpriteScreenXY(11, temp0, temp1)
		temp0 += 30
		DrawSpriteScreenXY(3, temp0, temp1)
		temp0 += 28
		DrawSpriteScreenXY(9, temp0, temp1)
		temp0 += 31
		DrawSpriteScreenXY(11, temp0, temp1)
		temp0 += 30
		DrawSpriteScreenXY(3, temp0, temp1)
		temp0 += 29
		DrawSpriteScreenXY(5, temp0, temp1)
		temp0 += 34
		DrawSpriteScreenXY(7, temp0, temp1)
		callFunction(LetterDrop)
		
		DrawSpriteScreenFX(20, FX_SCALE, screen.xcenter, screen.ycenter)
		break
	case 2
		drawRect(0,0, screen.xsize, screen.ysize, 0, 0, 0, 255)
		break
	case 3
	case 4
	case 5
	case 6
		drawRect(0,0, screen.xsize, screen.ysize, 255, 255, 255, 255)
		temp0 = screen.xcenter
		temp0 -= 160
		temp1 = screen.ycenter
		DrawSpriteScreenXY(0, temp0, temp1)
		temp0 += 29
		DrawSpriteScreenXY(2, temp0, temp1)
		temp0 += 29
		DrawSpriteScreenXY(4, temp0, temp1)
		temp0 += 34
		DrawSpriteScreenXY(6, temp0, temp1)
		temp0 += 52
		DrawSpriteScreenXY(13, temp0, temp1)
		DrawSpriteScreenFX(12, FX_INK, temp0, temp1)

		temp1 -= 34
		temp0 += 16
		if trapez.visibility >= 1
			DrawSpriteScreenXY(15, temp0, temp1)
			DrawSpriteScreenFX(14, FX_INK, temp0, temp1)
		endif
		temp0 += 9
		temp1 += 2
		if trapez.visibility >= 2
			DrawSpriteScreenXY(17, temp0, temp1)
			DrawSpriteScreenFX(16, FX_INK, temp0, temp1)
		endif
		temp0 += 7
		temp1 += 5
		if trapez.visibility >= 3
			DrawSpriteScreenXY(19, temp0, temp1)
			DrawSpriteScreenFX(18, FX_INK, temp0, temp1)
		endif
		temp1 += 27
		temp0 -= 32

		temp0 += 48
		DrawSpriteScreenXY(8, temp0, temp1)
		temp0 += 31
		DrawSpriteScreenXY(10, temp0, temp1)
		temp0 += 30
		DrawSpriteScreenXY(2, temp0, temp1)
		temp0 += 29
		DrawSpriteScreenXY(4, temp0, temp1)
		temp0 += 34
		DrawSpriteScreenXY(6, temp0, temp1)

		break
	endswitch
end event


event ObjectStartup
	LoadSpriteSheet("Title/TeamReDream.gif")
	SpriteFrame(-13, -15, 26, 30, 1, 70)		//T		00
	SpriteFrame(-13, -15, 26, 30, 1, 132)		//T White	01

	SpriteFrame(-12, -15, 24, 30, 28, 70)		//E		02
	SpriteFrame(-12, -15, 24, 30, 28, 132)		//E White	03

	SpriteFrame(-15, -15, 30, 30, 53, 70)		//A		04
	SpriteFrame(-15, -15, 30, 30, 53, 132)		//A White	05

	SpriteFrame(-16, -15, 32, 30, 84, 70)		//M		06
	SpriteFrame(-16, -15, 32, 30, 84, 132)		//M White	07

	SpriteFrame(-13, -15, 27, 30, 1, 101)		//D		08
	SpriteFrame(-13, -15, 27, 30, 58, 101)		//D White	09

	SpriteFrame(-14, -15, 28, 30, 29, 101)		//R		10
	SpriteFrame(-14, -15, 28, 30, 86, 101)		//R White	11

	SpriteFrame(-31, -25, 62, 50, 117, 70)		//RE		12
	SpriteFrame(-31, -25, 62, 50, 180, 70)		//RE Blue	13

	SpriteFrame(-3, -7, 7, 14, 243, 70)		//Red Trapez	14
	SpriteFrame(-3, -7, 7, 14, 256, 70)		//Red Trapez B	15

	SpriteFrame(-5, -6, 11, 13, 243, 85)		//Cyan Trapez	16
	SpriteFrame(-5, -6, 11, 13, 256, 85)		//Cyan Trapez B	17

	SpriteFrame(-6, -5, 12, 11, 243, 99)		//Blue Trapez	18
	SpriteFrame(-6, -5, 12, 11, 256, 99)		//Blue Trapez B	19

	SpriteFrame(-25, -25, 50, 50, 269, 70)		//Big O(OF)	20
end event

event RSDKDraw
	DrawSprite(0)
end event

event RSDKLoad
	LoadSpriteSheet("Global/Display.gif")
	SpriteFrame(-16, -16, 32, 32, 1, 143)
end event
